package com.android.support.lib.universal.view.dialog;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Context;
import android.content.DialogInterface;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.Button;
import android.widget.TextView;

import com.android.support.lib.universal.R;

/**
 * 确认提示框 使用说明： AlertdialogPromptDialog dialog = new
 * AlertdialogPromptDialog(context); dialog.setTitle("提示");
 * dialog.setMessage("当前版本已是最新版本"); dialog.setPositiveButton("确定",
 * null);//参数二添加点击事件，默认点击事件就是关闭当前弹窗。
 * dialog.dismiss();//关闭弹窗，如果添加了点击事件，需要调用该方法关闭弹窗。
 *
 * @author 彭治铭
 */
public class AlertdialogPromptDialog {
    Context context;
    android.app.AlertDialog dialog;
    TextView txt_title;
    TextView txt_message;
    Button btn_OK;

    /**
     * @param context
     * @param bool    false(按对话框以外的地方不起作用,即不会消失)，true(按其他区域会消失)。按返回键还起作用
     */
    @SuppressLint("NewApi")
    public AlertdialogPromptDialog(Context context, Boolean bool) {
        super();
        // TODO Auto-generated constructor stub
        this.context = context;
        dialog = new android.app.AlertDialog.Builder(context, R.style.Dialog).create();// R.style.Dialog为布局主题，也可以用0
        dialog.show();
        dialog.setCanceledOnTouchOutside(bool);// 调用这个方法时，按对话框以外的地方不起作用。按返回键还起作用
        Window window = dialog.getWindow();
        window.setContentView(R.layout.lib_alertdialog_promptdialog);// 弹出框的布局
        txt_title = (TextView) window.findViewById(R.id.txt_title);
        txt_message = (TextView) window.findViewById(R.id.txt_message);
        btn_OK = (Button) window.findViewById(R.id.btn_OK);
    }

    /**
     * 标题
     *
     * @param title
     */
    public void setTitle(String title) {
        txt_title.setText(title);
    }

    /**
     * 信息
     *
     * @param message
     */
    public void setMessage(String message) {
        txt_message.setText(message);
    }

    /**
     * 设置按钮---确认
     *
     * @param text
     * @param listener
     */
    public void setPositiveButton(String text,
                                  final OnClickListener listener) {
        btn_OK.setText(text);
        if (listener != null) {
            btn_OK.setOnClickListener(listener);
        } else {
            btn_OK.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    dismiss();
                }
            });
        }

    }

    //关闭对话框
    public void dismiss() {
        dialog.dismiss();
    }

    //捕捉返回键关闭当前Activity
    public void setOnKeyListener(final Activity activity) {
        dialog.setOnKeyListener(new DialogInterface.OnKeyListener() {
            @Override
            public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
                if (keyCode == KeyEvent.KEYCODE_BACK
                        && event.getAction() == KeyEvent.ACTION_DOWN) {
                    dialog.dismiss();
                    activity.finish();
                }
                return false;
            }
        });
    }

}
